﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SubirInformacion
{
    public partial class IgualarHoras : Form
    {
        public IgualarHoras()
        {
            InitializeComponent();
            CorrerProceso();
           // CorrerProceso1();
        }
        private void CorrerProceso1()
        {
            try
            {
                using (var contexto = new ContextoBiciq())
                {

                    var fecha = Convert.ToDateTime("07/04/2013");
                    var opActualizar = contexto.HistoriaCliente.Where(h => h.Fecha.Value < fecha && h.HoraEntrega == null && h.MinutosRecorrido == null  ).ToList();


                    foreach (var item in opActualizar)
                    {
                        var operacion = contexto.Operacion
                            .Include("DetalleOperacion")
                            .Where(o => o.Id == item.IdOperacionPrestamo).FirstOrDefault();
                        if (operacion != null)
                        {
                            var bicicleta = operacion.DetalleOperacion.FirstOrDefault().Bicicleta.Id;
                            var biciestacion = contexto.EstacionBiciletas.Where(e => e.idBicicleta == bicicleta).Count();
                            var bicicliente = contexto.ClienteBicicleta.Where(c => c.IdBicicleta == bicicleta).Count();
                            if (biciestacion > 0 || bicicliente > 0)
                            {
                                item.MinutosRecorrido = 40;
                                item.HoraEntrega = item.HoraPrestamo.Value.Add(new TimeSpan(0, 0, item.MinutosRecorrido.Value, 0));
                            }
                        }
                        
                        
                    }

                    contexto.SaveChanges();

                    MessageBox.Show("Proceso Concluído");
                    Application.Exit();
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show("Error al Ejecutar Proceso" + ex.Message);
            }
        }
        private void CorrerProceso()
        {
           try 
	        {	        
		         using (var contexto = new ContextoBiciq())
                    {
                     
                     var fecha = Convert.ToDateTime("07/04/2013");
                     var opActualizar = contexto.HistoriaCliente.Where (h=>h.Fecha.Value < fecha  && h.HoraEntrega == null && h.MinutosRecorrido !=null).ToList();
                    

                        foreach (var item in opActualizar)
	                    {
                            item.HoraEntrega = item.HoraPrestamo.Value.Add(new TimeSpan(0, 0, item.MinutosRecorrido.Value, 0));
	                    }

                        contexto.SaveChanges();
                       
                     MessageBox.Show("Proceso Concluído");
                     Application.Exit();
                    }
	        }
	        catch (Exception ex)
	        {

		        MessageBox.Show("Error al Ejecutar Proceso" + ex.Message );
	        }
        }
    }
}
